package com.yiruantong.basic.domain.product.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import com.yiruantong.basic.domain.product.BaseProvider;
import com.yiruantong.common.excel.annotation.ExcelDictFormat;
import com.yiruantong.common.excel.convert.ExcelDictConvert;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;


/**
 * 供应商管理视图对象 base_provider
 *
 * @author YiRuanTong
 * @date 2024-10-25
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BaseProvider.class)
public class BaseProviderVo implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 行ID
   */
  @ExcelProperty(value = "行ID")
  private Long providerId;

  /**
   * 拼音码
   */
  @ExcelProperty(value = "拼音码")
  private String pinYinCode;

  /**
   * 供应商编号
   */
  @ExcelProperty(value = "供应商编号")
  private String providerCode;

  /**
   * 供应商简称
   */
  @ExcelProperty(value = "供应商简称")
  private String providerShortName;

  /**
   * 供应商全称
   */
  @ExcelProperty(value = "供应商全称")
  private String providerName;

  /**
   * 所属地区ID
   */
  @ExcelProperty(value = "所属地区ID")
  private Long cityId;

  /**
   * 所属地区
   */
  @ExcelProperty(value = "所属地区")
  private String cityName;

  /**
   * 单位类别ID
   */
  @ExcelProperty(value = "单位类别ID")
  private Long typeId;

  /**
   * 类别名称
   */
  @ExcelProperty(value = "类别名称")
  private String typeName;

  /**
   * 联系人
   */
  @ExcelProperty(value = "联系人")
  private String linker;

  /**
   * 地址
   */
  @ExcelProperty(value = "地址")
  private String address;

  /**
   * 邮政编码
   */
  @ExcelProperty(value = "邮政编码")
  private String zip;

  /**
   * 手机
   */
  @ExcelProperty(value = "手机")
  private String mobile;

  /**
   * 电话
   */
  @ExcelProperty(value = "电话")
  private String tel;

  /**
   * 传真
   */
  @ExcelProperty(value = "传真")
  private String fax;

  /**
   * QQ
   */
  @ExcelProperty(value = "QQ")
  private String qq;

  /**
   * MSN
   */
  @ExcelProperty(value = "MSN")
  private String msn;

  /**
   * 开户行
   */
  @ExcelProperty(value = "开户行")
  private String bank;

  /**
   * 银行账号
   */
  @ExcelProperty(value = "银行账号")
  private String bankCode;

  /**
   * 公司法人
   */
  @ExcelProperty(value = "公司法人")
  private String raxCode;

  /**
   * 供应商URL
   */
  @ExcelProperty(value = "供应商URL")
  private String corpUrl;

  /**
   * Email
   */
  @ExcelProperty(value = "Email")
  private String email;

  /**
   * 公司法人
   */
  @ExcelProperty(value = "公司法人")
  private String artificiaPerson;

  /**
   * 在途天数
   */
  @ExcelProperty(value = "在途天数")
  private Long transitDays;

  /**
   * 应付款上限
   */
  @ExcelProperty(value = "应付款上限")
  private Long moneyUpper;

  /**
   * 结款方式
   */
  @ExcelProperty(value = "结款方式")
  private String accountsMode;

  /**
   * 结款周期(天)
   */
  @ExcelProperty(value = "结款周期(天)")
  private String accountsPeriod;

  /**
   * 信用额度
   */
  @ExcelProperty(value = "信用额度")
  private BigDecimal creditLine;

  /**
   * 企业性质
   */
  @ExcelProperty(value = "企业性质")
  private String enpterType;

  /**
   * 企业类型
   */
  @ExcelProperty(value = "企业类型")
  private String enpterMode;

  /**
   * 合同开始日期
   */
  @ExcelProperty(value = "合同开始日期")
  private Date contractStart;

  /**
   * 合同开始日期
   */
  @ExcelProperty(value = "合同开始日期")
  private Date contractEnd;

  /**
   * 发票类型
   */
  @ExcelProperty(value = "发票类型")
  private String invoiceType;

  /**
   * 合作模式
   */
  @ExcelProperty(value = "合作模式")
  private String cooperationMode;

  /**
   * 是否返点
   */
  @ExcelProperty(value = "是否返点")
  private Long isFanDianFee;

  /**
   * 返点额
   */
  @ExcelProperty(value = "返点额")
  private String fanDianFee;

  /**
   * 商品折扣
   */
  @ExcelProperty(value = "商品折扣")
  private String productDiscount;

  /**
   * 税率
   */
  @ExcelProperty(value = "税率")
  private BigDecimal rate;

  /**
   * 密码
   */
  @ExcelProperty(value = "密码")
  private String password;

  /**
   * 货主ID
   */
  @ExcelProperty(value = "货主ID")
  private Long consignorId;

  /**
   * 货主编号
   */
  @ExcelProperty(value = "货主编号")
  private String consignorCode;

  /**
   * 货主名称
   */
  @ExcelProperty(value = "货主名称")
  private String consignorName;

  /**
   * 超收百分比
   */
  @ExcelProperty(value = "超收百分比")
  private BigDecimal overcharges;

  /**
   * 质检方案
   */
  @ExcelProperty(value = "质检方案")
  private String qualityPlan;

  /**
   * 质检比例
   */
  @ExcelProperty(value = "质检比例")
  private BigDecimal qualityProportion;

  /**
   * 需效期管理
   */
  @ExcelProperty(value = "需效期管理")
  private Long isNeedPeriod;

  /**
   * 保质期天数
   */
  @ExcelProperty(value = "保质期天数")
  private BigDecimal shelfLifeDay;

  /**
   * 禁收效期系数%
   */
  @ExcelProperty(value = "禁收效期系数%")
  private BigDecimal noReceivingRate;

  /**
   * 停售提前时长（天）
   */
  @ExcelProperty(value = "停售提前时长", converter = ExcelDictConvert.class)
  @ExcelDictFormat(readConverterExp = "天=")
  private Long stopSaleDay;

  /**
   * 是否带货安装
   */
  @ExcelProperty(value = "是否带货安装")
  private Long isProductinstallation;

  /**
   * 公众号OpenId
   */
  @ExcelProperty(value = "公众号OpenId")
  private String wechatOpenid;

  /**
   * 排序号
   */
  @ExcelProperty(value = "排序号")
  private Long orderNum;

  /**
   * 扩展字段
   */
  @ExcelProperty(value = "扩展字段")
  private Map<String, Object> expandFields;

  /**
   * 备注
   */
  @ExcelProperty(value = "备注")
  private String remark;

  /**
   * 创建人
   */
  @ExcelProperty(value = "创建人")
  private String createByName;

  /**
   * 创建时间
   */
  @ExcelProperty(value = "创建时间")
  private Date createTime;

  /**
   * 修改人
   */
  @ExcelProperty(value = "修改人")
  private String updateByName;

  /**
   * 修改时间
   */
  @ExcelProperty(value = "修改时间")
  private Date updateTime;

  /**
   * 删除时间
   */
  @ExcelProperty(value = "删除时间")
  private Date deleteTime;

  /**
   * 删除人id
   */
  @ExcelProperty(value = "删除人id")
  private Long deleteBy;

  /**
   * 删除人
   */
  @ExcelProperty(value = "删除人")
  private String deleteByName;

  /**
   * 是否可用
   */
  @ExcelProperty(value = "是否可用")
  private Byte enable;


}
